package estates.model;

import estates.util.Identifiable;
import java.util.HashMap;
import java.util.List;
import java.io.Serializable;

public abstract class Estate extends Identifiable implements Comparable<Estate>, Serializable {

  private Long id;
  
  public Long getId() {
    return id;
  }

  public Long setId(Long id) {
	  return id;
  }
  /*public abstract List<User> getInterestedUsers();
  public abstract boolean setInterestedUser(User u);*/
  
  public abstract void setUser(User user);

  public abstract User getUser();

  public abstract void setComments(List<Comment> comments);

  public abstract List<Comment> getComments();

  public abstract boolean isCommentAcceptable(Comment comment);

  public abstract void dekoruj(HashMap<String, Object> hm);

  public abstract int getNumer_oferty();

  public abstract void setNumer_oferty(int numer_oferty);

  public abstract int getTypOferty();

  public abstract void setTypOferty(int typ_oferty);

  public abstract int place(int by, int ilosc_kubkow);

  public abstract int rPlaceByCzyRozkladowy(int ilosc_kubkow);

  public abstract int rPlaceByLiczbaPieter(int ilosc_kubkow);

  public abstract int rPlaceByRokBudowy(int ilosc_kubkow);

  public abstract int rPlaceByliczbaPokoi(int ilosc_kubkow);

  public abstract int rPlaceByMetraz(int ilosc_kubkow);

  public abstract int rPlaceByCena(int ilosc_kubkow);

  public abstract boolean matchesQuery(Estate wzorzec);

  public abstract int getCena();

  public abstract int getPowierzchnia();

  public abstract String getWojewodztwo();

  public abstract String getOpis();

  public abstract HashMap<String, String> obliczSrednieOceny();

  public abstract Comment addComment(HashMap<String, Object> commentData, User user);
}
